// request.js

import axios from 'axios';
import {ElMessage} from "element-plus";

// 创建一个axios实例a
const instance = axios.create({
    baseURL: localStorage.getItem("VUE_APP_BASE_URL"), // 设置baseURL
    timeout: 10000, // 设置超时时间

});

// 请求拦截器，可以在发送请求前进行一些处理
instance.interceptors.request.use(config => {
    if (!config.headers.hasContentType())
        config.headers['Content-Type'] = 'application/json;charset=utf-8';

    // config.headers['token'] = user.token;  // 设置请求头
    config.headers['token'] = localStorage.getItem('jwt')

    return config
}, error => {
    return Promise.reject(error)
});


// 响应拦截器，可以对响应数据进行处理
instance.interceptors.response.use(
    function (response) {
        if (response.data.code != '200') {
            //     只有200才放行响应，否则都拦截同意处理
            ElMessage.error(response.data.message)
            if (response.data.code == 401) {
                // jwt无效或者过期要先移除当前存储的jwt
                localStorage.removeItem("jwt")
                localStorage.removeItem("curUserId")
                this.$router.push("/login")
            }

            return Promise.reject({code: response.data.code, message: response.data.message})
        }
        return response.data;
    },
    function (error) {
        // 对响应错误做点什么
        return Promise.reject(error);
    }
);


export default instance;